package com.jichaoyun.sys.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jichaoyun.common.model.PagedResult;
import com.jichaoyun.model.entity.Realdata;


import java.text.ParseException;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
* @author zhen
* @description 针对表【realData】的数据库操作Service
* @createDate 2023-11-16 19:42:41
*/
public interface IRealdataService extends IService<Realdata> {

    Realdata getStationSingleInfoById(Integer station_no);

    /**
     * 获取某站点最近一条实时数据信息
     * @param station_no
     * @return
     */
    List<Map<String,Object>> getRealDataById(Integer station_no);

    /**
     * 查询近30分钟数据
     * @param stationName
     * @return
     * @throws ParseException
     */
    Map<String,List<Float>> getHalfHourRealData(String stationName);


    List<Realdata> getTop5Flow();

    List<Realdata> getTop5Temp();

    List<Realdata> getTop5Pres();

    PagedResult getMultiRealInfovo(Integer pageNo, Integer pageSize);

    /**
     * 查看各项报警占比
     * @return
     */
    Map<String,Long> eachAlarmProportion();



    /**
     * 管损报表查询
     * @param pageNo
     * @param start
     * @param end
     * @param StationNo
     * @return
     */
    PagedResult getLineLossForm(Integer pageNo, LocalDateTime start, LocalDateTime end, Integer StationNo);

    Map<String, Object> getTenMinutesLineLossForm(Integer stationNo);


    /**
     * 管损报表查询-查询右边的图
     * 查找某时间区间内的数据
     * @param stationNo
     * @return
     */
    Map<String, Object> getPeriodLineLossForm(Integer stationNo, LocalDateTime start, LocalDateTime end);


    /**
     * 获取24小时以内的日报表
     * @param stationNo
     * @param start
     * @param end
     * @return
     */
    Map<String, Object> get24HourNum(Integer stationNo, LocalDateTime start, LocalDateTime end);
}
